/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package generadordescktop;

import generadorabm.Controladora;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;

/**
 *
 * @author Agustin
 */
public class ModeloComboExtiende extends AbstractListModel implements ComboBoxModel {

    boolean loEncontro;
    String[] items;//cadena q recibira los datos a mostrar.
    String itemSelecionado = null;

    public ModeloComboExtiende() {
        items = new String[0];
        for (String s : Controladora.getInstance().leerArchivoClases()) {
            boolean bol = true;
            String tipo = "";
            String inter = "";
            String perist="";
            int cont = 0;
            for (char c : s.toCharArray()) {
                if (bol) {
                    if (c != '|') {
                        tipo += c;
                    } else {
                        bol = false;
                    }
                }
                if (bol == false && c != ' ') {
                    inter += c;
                }
            }
            if (tipo.toCharArray().length > 12) {
                for (int x=0;x<12;x++) {
                    perist+=tipo.toCharArray()[x];
                }
            }
            if (!inter.toLowerCase().equals("|interface") && !perist.toLowerCase().equals("persistencia")) {
                if (!tipo.equals("")) {
                    if (!tipo.equals("Main")) {
                        if (!tipo.equals("DataBase")) {
                            this.agregaItem(tipo);
                        }
                    }
                }
            }
        }
    }

    public Object getElementAt(int index) {

        return items[index];
    }

    public int getSize() {
        return items.length;
    }

    public void setSelectedItem(Object item) {
        itemSelecionado = (String) item;
        fireContentsChanged(this, -1, -1);
    }

    public void agregaItem(String cadena) {
        String[] nuevoItems = new String[items.length + 1];
        for (int i = 0; i < items.length; i++) {
            nuevoItems[i] = items[i];
        }
        nuevoItems[items.length] = cadena;
        items = nuevoItems;
        fireContentsChanged(this, -1, -1);
    }

    public boolean buscaItem(String itemABuscar) {
        for (int i = 0; i < items.length; i++) {
            if (itemABuscar == items[i]) {
                loEncontro = true;
                break;
            } else {
                loEncontro = false;
            }
        }
        return loEncontro;
    }

    public Object getSelectedItem() { //metodo implementado por la interface  JComboBoxModel
        return itemSelecionado;

    }
}
